<?php
class Exportarxml extends CI_Controller{

    var $url = 'exportarxml/';
    var $pre ='exportarxml';
    var $pret='exportarxmltotal';

    function __construct(){
        parent::__construct();
        $this->lang->load('exportarxml');
        $this->load->library('form_validation');
    }

    function grid(){
		$this->load->model('filtergrid');
		$grid = new Filtergrid($_GET);
		$grid->select('id','empresa_id','dni','apellido1','apellido2','nombre','date_format(nacimiento,"%d/%m/%Y") nacimiento','IF(sexo=1,"Masculino","Femenino") sexo',
		'CASE(nivelformativo)
		WHEN "00" THEN "Sin Estudios"
		WHEN "10" THEN "Nivel básico"
		WHEN "20" THEN "Formación Profesional"
		WHEN "30" THEN "Bachiller"
		WHEN "40" THEN "Estudios Superiores"
		END nivelformativo'
		,'IF(discapacidad="S","Si","No") discapacidad','IF(inmigrante="S","Si","No") inmigrante','IF(colocado="S","Si","No") colocado','date_format(fcolocado,"%d/%m/%Y") fcolocado',
		'CASE(tcontrato)
		WHEN "001" THEN "Indefinido tiempo completo"
		WHEN "003" THEN "Indefinido tiempo parcial"
		WHEN "401" THEN "Duración determinada tiempo completo"
		WHEN "501" THEN "Duración determinada tiempo parcial"
		END
		tcontrato','cifnif','empresa',
		'IF(discapacidad="S",1,0) o_discapacidad',
		'IF(inmigrante="S",1,0) o_inmigrante',
		'IF(colocado="S",1,0) o_colocado',
		'IF(sexo=2,1,0) o_sexo',
		'CASE(nivelformativo)
		WHEN "00" THEN "0"
		WHEN "10" THEN "1"
		WHEN "20" THEN "2"
		WHEN "30" THEN "3"
		WHEN "40" THEN "4"
		END o_nivelformativo',
		'CASE(tcontrato)
		WHEN "001" THEN "0"
		WHEN "003" THEN "1"
		WHEN "401" THEN "2"
		WHEN "501" THEN "3"
		END
		o_tcontrato',
        'ano_mes_envio');
		$grid->from('acciones_realizadas');
		$grid->order_by('dni','asc');
		$grid->output('id');
    }

	function principal(){
        $forSelect = array("SQL" => "SELECT DISTINCT ano_mes_envio FROM acciones_realizadas", "KEY" => "ano_mes_envio", "VALUE" => "ano_mes_envio");
		$data["options"] = $this->util->getOptionsForSelect($forSelect);
		$this->load->view('exportarxml', $data);
	}

	function guardar(){
		$msj  ='';
		$error='';
		$idk  ='id';
		$table='acciones_realizadas';
		$d    = $this->input->post();

		$d['discapacidad']=($d['discapacidad']==1?'S':'N');
		$d['inmigrante'  ]=($d['inmigrante'  ]==1?'S':'N');
		$d['colocado'    ]=($d['colocado'    ]==1?'S':'N');
        $d['ano_mes_envio']=$d['ano-envio'].$d['mes-envio'];
        unset($d["ano-envio"]);
        unset($d["mes-envio"]);
        
		$this->form_validation->set_rules('dni'            , $this->lang->line("F_DNI"                ) , implode('|',array('required'                 ,'exact_length[9]'                                                  )));
		$this->form_validation->set_rules('nombre'         , $this->lang->line("F_NOMBRE"             ) , implode('|',array('required','max_length[15]'                                                                    )));
		$this->form_validation->set_rules('apellido1'      , $this->lang->line("F_APELLIDO1"          ) , implode('|',array('required','max_length[20]'                                                                    )));
		$this->form_validation->set_rules('apellido2'      , $this->lang->line("F_APELLIDO2"          ) , implode('|',array(           'max_length[20]'                                                                    )));
		$this->form_validation->set_rules('nacimiento'     , $this->lang->line("F_NACIMIENTO"         ) , implode('|',array(                            'exact_length[10]','date_is_valid'                                 )));
		if($d['colocado']=='S'){
			$this->form_validation->set_rules('fcolocado'      , $this->lang->line("F_FCOLOCADO"          ) , implode('|',array('required'                 ,'exact_length[10]','date_is_valid'                             )));
			$this->form_validation->set_rules('cifnif'         , $this->lang->line("F_CIFNIF"             ) , implode('|',array('required'                 ,'exact_length[9]'                                              )));
			$this->form_validation->set_rules('empresa'        , $this->lang->line("F_EMPRESA"            ) , implode('|',array('required','max_length[55]'                                                                )));
		}else{
			$d['fcolocado']=null;
			$d['tcontrato']=null;
			$d['cifnif'   ]=null;
			$d['empresa'  ]=null;
		}

		$this->form_validation->set_error_delimiters('', '</br>');
		$this->form_validation->run();
		$error     .=$this->load->view('validation_errors',array(),true);
		$array_error=$this->form_validation->array_errors();

		if(empty($error)){
			$d['nacimiento'] =human_to_dbdate($d['nacimiento']);
			if($d['fcolocado'])
			$d['fcolocado']  =human_to_dbdate($d['fcolocado']);

			$resp            =guardar($table,$d,$idk,$d[$idk]);
			$error          .=$resp['error'];
			$msj            .=$resp['mensaje'];
		}
		echo json_encode(array('error' => $error,'mensaje' => $msj,'id'=>array('key'=>$idk,'value'=>$d[$idk]),'array_error'=>$array_error));
	}

	function eliminar(){
		$d    = $this->input->post();
		$ids  =explode(',',$d['ids']);

		$this->db->where_in('id', $ids);

		$this->db->delete('exportarxml');
	}

	function gridtotal(){
        $query = $this->db->query("SELECT DISTINCT ano_mes_envio FROM acciones_realizadas");
        if($query->num_rows() > 0)
            foreach($query->result_array() as $row)
                $this->db->query("CALL sp_totalessugeridos({$row['ano_mes_envio']})");
		$grid = new Filtergrid();
        $grid->select(
            "id",
            "personas",
            "nuevas",
            "perceptoras",
            "insercion",
            "ofertas",
            "ofertas_enviadas",
            "ofertas_cubiertas",
            "puestos",
            "puestos_cubiertos",
            "contratos",
            "contratos_indefinidos",
            "colocadas",
            "ano_mes_envio"
        );
		$grid->from('totales');
		$grid->order_by('id','asc');
		$grid->output('id');
    }

	function guardartotal(){
		$msj  ='';
		$error='';
		$idk  ='id';
		$table='totales';
		$d    = $this->input->post();
        
		$oper =FALSE;
		if(isset($d['oper'])){
            //			$d['id']=$d['id']; 
			$oper       =$d['oper'];
			unset($d['oper']);
			/* unset($d['id']  ); */
		}

		if($oper && isset($d['personas']))
            $this->form_validation->set_rules('personas', $this->lang->line("GT_PERS"    ) , implode('|',array('is_natural' )));
        
		$this->form_validation->set_error_delimiters('', '</br>');
		$this->form_validation->run();
		$error     .=$this->load->view('validation_errors',array(),true);
		$array_error=$this->form_validation->array_errors();

		if(empty($error)){
			$resp            =guardar($table,$d,$idk,$d[$idk]);
			$error          .=$resp['error'];
			$msj            .=$resp['mensaje'];
		}
		echo json_encode(array('error' => $error,'mensaje' => $msj,'id'=>array('key'=>$idk,'value'=>$d[$idk]),'array_error'=>$array_error));
	}

	function borrar(){
		$this->db->simple_query('TRUNCATE exportarxml');
		$this->db->simple_query('UPDATE exportarxmltotal SET valor=0,sugerido=0');
	}

	function importar(){
		$this->load->model('filtergrid');

		$mes=$this->input->post('mes');

		$grid = new Filtergrid(NULL,'migra');
		$grid->select(
		 'CONCAT(a.dni,UPPER(a.dni_letra)) dni'
		,'a.nombre nombre'
		,'a.apellido_paterno apellido1'
		,'a.apellido_materno apellido2'
		,'DATE_FORMAT(a.fecha_nacimiento,"%Y%m%d") nacimiento'
		,'a.sexo sexo'
		,'CASE(MAX(e.categoria_titulo_id))
			WHEN 1 THEN "10"
			WHEN 2 THEN "10"
			WHEN 4 THEN "20"
			WHEN 3 THEN "30"
			WHEN 5 THEN "40"
			ELSE "00"
		END nivelformativo'
		,'IF(a.minusvalia=1,"S","N") discapacidad'
		,'a.fecha_registro fregistro'
		,'IF(MONTH(a.fecha_registro)='.$mes.',"S","N") nueva'
		);
		$grid->from('al_candidatos a');
		$grid->join('al_can_formaciones_academicas b ','a.candidato_id=b.candidato_id                 ','LEFT');
		$grid->join('al_titulos_academicos c         ','b.titulo_id=c.id_titulo_academico             ','LEFT');
		$grid->join('al_categorias_titulos d         ','c.categoria_titulo_id=d.categoria_titulo_id   ','LEFT');
		$grid->join('al_categorias_titulos e         ','d.categoria_titulo_padre=e.categoria_titulo_id','LEFT');
		$grid->where_in('a.dni_letra  ',array('R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E'));
		$grid->where_in('a.sexo       ',array(1,2));
		$grid->where_in('a.minusvalia ',array(0,1));
		$grid->where('LENGTH(a.nombre)           >  ',00  );
		$grid->where('LENGTH(a.nombre)           <= ',15  );
		$grid->where('LENGTH(a.apellido_paterno) >  ',0   );
		$grid->where('LENGTH(a.apellido_paterno) <= ',20  );
		$grid->where('LENGTH(a.apellido_materno) <= ',20  );
		$grid->where('b.completa'                    ,1   );
		$grid->where('MONTH(a.fecha_registro)'       ,$mes);
		$grid->group_by('a.candidato_id');
		$grid->order_by('a.dni','asc');
		$grid->build($data,$v2,$v3,$v4);

		$this->db->insert_batch('exportarxml',$data);
	}
    
    function optionsForSelect(){
        $forSelect = array("SQL" => "SELECT DISTINCT ano_mes_envio FROM acciones_realizadas", "KEY" => "ano_mes_envio", "VALUE" => "ano_mes_envio");
		echo $this->util->getOptionsForSelect($forSelect);
    }
}

?>
